Versi 1
| Field | Isi |
|---|---|
| Dokumen ID | VBS-FIN-002 |
| Deskripsi | Pengembalian titipan / DP kepada customer atau dari supplier berdasarkan invoice DP yang masih memiliki sisa, termasuk draft / final dan cetak bukti pengembalian |
| Nomor Revisi | 1 |
| Tanggal | 2026-10-04 |
| Keterangan | Dokumentasi baseline dari dokumentasi fitur demo dan kode FE |
1. Ringkasan
a. In scope
- User melihat daftar pengembalian titipan / DP dengan kolom tanggal, nomor invoice, invoice DP asal, tipe dan nama lawan transaksi, total pengembalian, dan status invoice.
- User memfilter daftar berdasarkan periode tanggal invoice, status invoice, dan tipe lawan transaksi, mengatur kolom tampil, serta mengekspor ke Excel.
- User membuat pengembalian DP: memilih tipe dan nama lawan transaksi, memilih invoice DP yang masih bersisa, mengisi tanggal, keterangan, mata uang asing (opsional), serta metode pembayaran dan nominal pengembalian.
- Sistem menolak pengembalian yang melebihi sisa DP.
- User menyimpan sebagai draft atau final, mengubah dan menghapus draft, mengubah invoice final kembali ke draft, dan mencetak bukti pengembalian.
b. Catatan
c. Kesimpulan
- [FE] -
- [BE] -
2. Functional Requirement
| Kode | Deskripsi |
|---|---|
| FR-01 | Sistem menampilkan daftar pengembalian DP lengkap dengan invoice DP asal dan status invoice |
| FR-02 | User dapat memfilter daftar berdasarkan periode, status invoice, dan tipe lawan transaksi, serta mengekspor ke Excel |
| FR-03 | Sistem hanya menampilkan invoice DP milik lawan transaksi terpilih yang sisa DP-nya lebih dari 0 |
| FR-04 | User dapat membuat pengembalian DP dengan satu atau lebih metode pembayaran |
| FR-05 | Sistem menolak total pengembalian yang melebihi sisa DP invoice asal |
| FR-06 | User dapat menyimpan pengembalian sebagai draft atau final |
| FR-07 | User dapat mengubah dan menghapus pengembalian berstatus draft |
| FR-08 | User dengan hak draft dapat mengubah pengembalian final kembali menjadi draft |
| FR-09 | User dapat mencetak bukti pengembalian DP final |
3. Use Case List
| Kode | Deskripsi |
|---|---|
| UC-01 | Melihat dan memfilter daftar pengembalian DP |
| UC-02 | Membuat pengembalian titipan DP |
| UC-03 | Mengubah pengembalian DP draft |
| UC-04 | Membuka kembali (unlock) pengembalian DP final ke draft |
| UC-05 | Menghapus pengembalian DP draft |
| UC-06 | Mencetak bukti pengembalian DP |
4. Use Case Scenario
UC-01 : Melihat dan memfilter daftar pengembalian DP
| Aktor | User keuangan |
| Deskripsi | User melihat, memfilter, dan mengekspor daftar pengembalian DP |
| Prekondisi | User sudah login dan memiliki akses menu Pengembalian Titipan |
| Alur utama | 1. User membuka menu Keuangan, Pengembalian Titipan. 2. Sistem menampilkan daftar pengembalian dengan nama lawan transaksi. 3. User mengatur filter periode tanggal invoice, status invoice, dan tipe lawan transaksi. 4. Sistem memuat ulang daftar. 5. User dapat menekan export untuk mengunduh Excel. |
| Alur negatif | - Jika daftar kosong atau gagal dimuat, sistem menampilkan keadaan kosong / alert error. - Jika hasil export kosong, file tidak dibuat. |
| Bisnis rule | - Tanpa hak lihat semua user, daftar hanya memuat invoice buatan user sendiri. - Status invoice: selesai = final, draft = belum final. |
| Postkondisi | Daftar pengembalian tampil sesuai filter |
| Trigger | User membuka halaman atau mengubah filter |
| Kode FR | FR-01 FR-02 |
UC-02 : Membuat pengembalian titipan DP
| Aktor | User keuangan |
| Deskripsi | User mengembalikan sebagian atau seluruh sisa titipan DP |
| Prekondisi | Ada invoice titipan DP final dengan sisa DP lebih dari 0 untuk lawan transaksi tersebut |
| Alur utama | 1. User menekan tambah. 2. User memilih tipe lawan transaksi (customer / supplier) dan nama lawan transaksi. 3. Sistem memuat invoice DP lawan tersebut yang masih bersisa. 4. User memilih nomor invoice DP yang dikembalikan. 5. User mengisi tanggal, keterangan, mata uang asing (opsional), metode pembayaran, dan nominal. 6. User menyimpan sebagai draft atau final. 7. Sistem menyimpan dan menampilkan "Berhasil Buat Invoice Refund DP". |
| Alur negatif | - Jika form belum lengkap atau invoice DP belum dipilih, muncul "Tolong lengkapi form dengan benar!". - Jika total pengembalian melebihi sisa DP, muncul "Tolong Pembayaran tidak boleh lebih dari Sisa DP!". - Jika server menolak, muncul alert error. |
| Bisnis rule | - Satu pengembalian merujuk satu invoice DP asal. - Total pengembalian tidak boleh melebihi sisa DP. - Pilihan invoice DP mengikuti lawan transaksi dan mata uang yang dipilih. |
| Postkondisi | Pengembalian DP tersimpan dan sisa DP invoice asal berkurang saat final |
| Trigger | User menekan tombol tambah |
| Kode FR | FR-03 FR-04 FR-05 FR-06 |
UC-03 : Mengubah pengembalian DP draft
| Aktor | User keuangan |
| Deskripsi | User memperbaiki pengembalian DP yang masih draft |
| Prekondisi | Pengembalian berstatus draft dan user memiliki hak dasar |
| Alur utama | 1. User memilih Edit. 2. Sistem memuat detail pengembalian. 3. User mengubah data dan metode pembayaran. 4. User menyimpan sebagai draft atau final. 5. Sistem menampilkan "Berhasil update Invoice Refund DP". |
| Alur negatif | - Jika form belum lengkap, muncul "Tolong lengkapi form dengan benar!". - Jika total melebihi sisa DP, muncul "Tolong Pembayaran tidak boleh lebih dari Sisa DP!". - Jika server menolak, muncul notifikasi error. |
| Bisnis rule | - Metode pembayaran lama yang dihapus dikirim dengan penanda terhapus. - Tanggal hanya dikirim jika berubah. |
| Postkondisi | Pengembalian draft terbarui atau menjadi final |
| Trigger | User memilih Edit |
| Kode FR | FR-07 FR-05 |
UC-04 : Membuka kembali (unlock) pengembalian DP final ke draft
| Aktor | User keuangan dengan hak draft |
| Deskripsi | User mengembalikan pengembalian final menjadi draft |
| Prekondisi | Pengembalian berstatus final |
| Alur utama | 1. User memilih Ubah ke Simpan Draft. 2. Sistem membuka kunci invoice. 3. Sistem menampilkan "Berhasil Ubah ke Simpan Draft Invoice NOMOR". |
| Alur negatif | - Jika user tidak punya hak, menu tidak muncul. - Jika server menolak, muncul alert error. |
| Bisnis rule | - Butuh hak global boleh draft dan hak draft Pengembalian DP. |
| Postkondisi | Pengembalian kembali berstatus draft |
| Trigger | User memilih Ubah ke Simpan Draft |
| Kode FR | FR-08 |
UC-05 : Menghapus pengembalian DP draft
| Aktor | User keuangan dengan hak draft |
| Deskripsi | User menghapus pengembalian DP yang masih draft |
| Prekondisi | Pengembalian berstatus draft |
| Alur utama | 1. User memilih Hapus. 2. Sistem menghapus invoice. 3. Sistem menampilkan "Berhasil Hapus Invoice NOMOR" dan memuat ulang daftar. |
| Alur negatif | - Jika server menolak, muncul alert error. |
| Bisnis rule | - Menu Hapus membutuhkan hak global boleh draft dan hak draft Pengembalian DP. |
| Postkondisi | Pengembalian terhapus |
| Trigger | User memilih Hapus |
| Kode FR | FR-07 |
UC-06 : Mencetak bukti pengembalian DP
| Aktor | User keuangan |
| Deskripsi | User mencetak bukti pengembalian DP final |
| Prekondisi | Pengembalian berstatus final |
| Alur utama | 1. User memilih Print. 2. Sistem menandai invoice tercetak dan memuat detail. 3. Sistem memuat kop surat cabang dan nama metode pengembalian. 4. Sistem membuat PDF bukti pengembalian. |
| Alur negatif | - Jika penandaan cetak atau detail gagal dimuat, muncul notifikasi error. - Cetak ulang dibatasi riwayat cetak dan hak reprint. |
| Bisnis rule | - Print hanya untuk invoice final. |
| Postkondisi | PDF bukti pengembalian tampil |
| Trigger | User memilih Print |
| Kode FR | FR-09 |
5. Data Flow Diagram
DFD-01 — Alur data pengembalian DP
6. Sequence Diagram
SD-01 — UC-01 : Melihat dan memfilter daftar pengembalian DP
SD-02 — UC-02 : Membuat pengembalian titipan DP
SD-03 — UC-03 : Mengubah pengembalian DP draft
SD-04 — UC-04 : Membuka kembali (unlock) pengembalian DP final ke draft
SD-05 — UC-05 : Menghapus pengembalian DP draft
SD-06 — UC-06 : Mencetak bukti pengembalian DP
7. Table Schema
8. API Schema
| Endpoint | Status | Perubahan |
|---|---|---|
GET /invoice-refund-dp | existing | - |
GET /invoice-refund-dp/:id | existing | - |
POST /invoice-refund-dp | existing | - |
PUT /invoice-refund-dp/:id | existing | - |
PUT /invoice-refund-dp/invoice-only/:id | existing | - |
PUT /invoice-refund-dp/unlock/:id | existing | - |
DELETE /invoice-refund-dp/:id | existing | - |
GET /invoice-dp | existing | - |
GET /customer/:id | existing | - |
GET /supplier/:id | existing | - |
GET /kop-surat | existing | - |
GET /metode-pembayaran | existing | - |